//
//  String+Regex.swift
//  测试-04-正则
//
//  Created by male on 15/10/31.
//  Copyright © 2015年 itheima. All rights reserved.
//

import Foundation

extension String {
    
    /// 从当前字符串中，过滤链接和文字
    /// 元组，可以允许一个函数返回多个数值
    func cz_href() -> (link: String, text: String)? {
        
        // 1. 创建正则表达式
        let pattern = "<a href=\"(.*?)\".*?>(.*?)</a>"
        
        // throws 针对 pattern 是否正确的异常处理
        // firstMatchInString 在 指定的字符串中，查找第一个和 pattern 符合字符串
        guard let regex = try? NSRegularExpression(pattern: pattern, options: []),
            let result = regex.firstMatch(in: self, options: [], range: NSRange(location: 0, length: self.characters.count))
            else {
                
                return nil
        }
        

        // 获取结果
        let link = (self as NSString).substring(with: result.rangeAt(1))

        let text = (self as NSString).substring(with: result.rangeAt(2))
        
        return (link, text)
    }
}
